package daily.may0513;

import java.util.LinkedList;

public class LinkedListTest {
    public static void main(String[] args) {
        LinkedList<String> linkedList = new LinkedList<>();
        //添加元素
        linkedList.add("张三");
        linkedList.add("李四");
        linkedList.add("王五");
        System.out.println(linkedList);//[张三, 李四, 王五]

        //addFirst方法：往链表开头添加元素
        linkedList.addFirst("法外狂魔");
        //addLast方法：往链表尾部添加元素。此方法等同于add方法。
        linkedList.addLast("赵六");
        System.out.println(linkedList);//[法外狂魔, 张三, 李四, 王五, 赵六]

        //getFirst方法：返回链表第一个元素
        //isEmpty方法：判断链表是否为空，为空返回true
        if (!linkedList.isEmpty()) {
            System.out.println(linkedList.getFirst());//法外狂魔
        }
        //getLast方法：返回链表中最后一个元素
        System.out.println(linkedList.getLast());//赵六

        //removeFirst方法：删除链表中第一个元素
        System.out.println("删除的元素是：" + linkedList.removeFirst());//法外狂魔
        System.out.println(linkedList);//[张三, 李四, 王五, 赵六]
        //removeLast方法：删除链表中最后一个元素
        System.out.println("删除的元素是：" + linkedList.removeLast());//赵六
        System.out.println(linkedList);//[张三, 李四, 王五]

        //pop方法：此方法等同于removeFirst方法
        System.out.println("出栈的元素是："+linkedList.pop());//张三
        System.out.println(linkedList);//[李四, 王五]
        //push方法：此方法等同于addFirst方法
        linkedList.push("真皮沙发");
        System.out.println(linkedList);//[真皮沙发, 李四, 王五]
    }
}
